home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
011-020
/
amok12
/
module
/
inout2.def
< prev
next >
Wrap
Text File
|
1993-11-04
|
2KB
|
69 lines
(*---------------------------------------------------------------------------
:Program. InOut2.def
:Author. Bernd Preusing
:Address. Gerhardstr. 16 D-2200 Elmshorn
:Phone. 04121/22486
:Shortcut. [bep]
:Version. 1.1
:Date. 09-Nov-88
:Copyright. PD
:Language. Modula-II
:Translator. M2Amiga
:Imports. ---
:UpDate. Changed 'count' in ReadCount to VAR, so actual read length
is returned.
:Contents. Added some procedures to InOut
:Remark. SetInput und SetOutput dienen dazu, auch Kommandozeilen-
Parameter direkt zu übergeben und so OpenInput und
OpenOutput zu umgehen.
WriteCount, ReadCount sollen FileSystem überflüssig machen.
ReadLn liest bis eol oder eof oder HIGH(str)+1, also
eine ganze Zeile
---------------------------------------------------------------------------*)
DEFINITION MODULE InOut2;
FROM SYSTEM IMPORT
ADDRESS, BYTE;
IMPORT ASCII;
CONST
eol = ASCII.eol;
VAR
done: BOOLEAN; (* nach jeder Prozedur gesetzt *)
termCh: CHAR;
PROCEDURE OpenInput(defExt:ARRAY OF CHAR);
PROCEDURE OpenOutput(defExt:ARRAY OF CHAR);
PROCEDURE SetInput(name: ARRAY OF CHAR);
PROCEDURE SetOutput(name: ARRAY OF CHAR);
PROCEDURE CloseInput();
PROCEDURE CloseOutput();
PROCEDURE Write(ch: CHAR);
PROCEDURE WriteLn();
PROCEDURE WriteString(str: ARRAY OF CHAR);
PROCEDURE WriteInt(x: LONGINT; n: INTEGER);
PROCEDURE WriteCard(x: LONGCARD; n: INTEGER);
PROCEDURE WriteOct(x: LONGINT; n: INTEGER);
PROCEDURE WriteHex(x: LONGINT; n: INTEGER);
PROCEDURE WriteBytes(VAR blk: ARRAY OF BYTE);
PROCEDURE WriteCount(adr: ADDRESS; count: LONGINT);
PROCEDURE Read(VAR ch: CHAR);
PROCEDURE ReadString(VAR str: ARRAY OF CHAR);
(* immer done, termCh=eol, eof oder anderes bei Stringüberlauf *)
PROCEDURE ReadLn(VAR str: ARRAY OF CHAR; VAR len: INTEGER);
PROCEDURE ReadInt(VAR x: INTEGER);
PROCEDURE ReadLongInt(VAR x: LONGINT);
PROCEDURE ReadCard(VAR x: CARDINAL);
PROCEDURE ReadLongCard(VAR x: LONGCARD);
PROCEDURE ReadBytes(VAR blk: ARRAY OF BYTE);
PROCEDURE ReadCount(adr: ADDRESS; VAR count: LONGINT);
END InOut2.def